The present disclosure generally relates to a computing system, and more particularly to migration of virtual machines.
A virtual machine is a portion of software that, when executed on appropriate hardware, creates an environment allowing the virtualization of certain functionality of a physical computer system. A virtual machine may function as a self-contained platform, running its own operating system (OS) and software applications (processes).
A host machine (e.g., computer or server) is typically enabled to simultaneously run one or more virtual machines, where each virtual machine may be used by a local or remote client. The host machine allocates a certain amount of the host's resources to each of the virtual machines. Each virtual machine may use the allocated resources to execute applications, including operating systems known as guest operating systems. A hypervisor virtualizes the underlying hardware of the host machine or emulates hardware devices, making the use of the virtual machine transparent to the guest operating system or the remote client that uses the virtual machine. Typically, the hypervisor manages allocation and virtualization of computer resources and performs context switching, as may be necessary, to cycle between various virtual machines.
In a virtual environment, a virtual machine running on a host machine may be migrated. Various considerations may be taken into account before the virtual machine is migrated. For example, if a virtual machine shares memory with another virtual machine running on the host machine, this may cause complications in the migration.